/*-------------------------------------------------------------------------
 *
 * pg_event_trigger.h
 *	  "事件触发器" 系统目录 (pg_event_trigger) 的定义
 *
 *
 * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * src/include/catalog/pg_event_trigger.h
 *
 * NOTES
 *	  Catalog.pm 模块读取此文件并推导模式
 *	  信息。
 *
 *-------------------------------------------------------------------------
 */
#ifndef PG_EVENT_TRIGGER_H
#define PG_EVENT_TRIGGER_H

#include "catalog/genbki.h"
#include "catalog/pg_event_trigger_d.h"

/* ----------------
 *		pg_event_trigger 定义。 cpp 将其转换为
 *		typedef struct FormData_pg_event_trigger
 * ----------------
 */
CATALOG(pg_event_trigger,3466,EventTriggerRelationId)
{
	Oid			oid;			/* oid */
	NameData	evtname;		/* 触发器的名称 */
	NameData	evtevent;		/* 触发器的事件 */
	Oid			evtowner BKI_LOOKUP(pg_authid); /* 触发器的所有者 */
	Oid			evtfoid BKI_LOOKUP(pg_proc);	/* 要调用的函数的 OID */
	char		evtenabled;		/* 关于 session_replication_role 的触发器触发配置 */

#ifdef CATALOG_VARLEN
	text		evttags[1];		/* 此事件触发器针对的命令 TAG */
#endif
} FormData_pg_event_trigger;

/* ----------------
 *		Form_pg_event_trigger 对应于一个指向与
 *		pg_event_trigger 关系格式相符的元组的指针。
 * ----------------
 */
typedef FormData_pg_event_trigger *Form_pg_event_trigger;

DECLARE_TOAST(pg_event_trigger, 4145, 4146);

DECLARE_UNIQUE_INDEX(pg_event_trigger_evtname_index, 3467, EventTriggerNameIndexId, on pg_event_trigger using btree(evtname name_ops));
DECLARE_UNIQUE_INDEX_PKEY(pg_event_trigger_oid_index, 3468, EventTriggerOidIndexId, on pg_event_trigger using btree(oid oid_ops));

#endif							/* PG_EVENT_TRIGGER_H */
